﻿'''
题目描述
给定一个字符串s，找出这样一个子串：
该子串中任意一个字符最多出现2次
该子串不包含指定某个字符
请你找出满足该条件的最长子串的长度
输入描述
第一行为：要求不包含的指定字符，为单个字符，取值范围[0-9a-zA-Z]
第二行为：字符串s，每个字符范围[0-9a-zA-Z]，长度范围[1, 10000]
输出描述
第一行为：要求不包含的指定字符，为单个字符，取值范围[0-9a-zA-Z]
第二行为：字符串s，每个字符范围[0-9a-zA-Z]，长度范围[1, 10000]
示例1
输入
D
ABC123
输出
6
示例2
输入
D
ABACA123D
输出
7
说明
解题思路
题目要求我们从给定的字符串 s 中找出一个满足以下两个条件的最长子串：
任意一个字符最多出现2次： 子串中的每个字符在子串中出现的次数不能超过2次。
子串不包含指定字符： 子串不能包含输入的指定字符。
输出的是满足以上条件的最长子串的长度。如果没有符合条件的子串，则返回0。
示例分析
示例 1
输入：
D
ABC123
输出：
6
分析：
排除字符为 D。
字符串 s 为 ABC123。
整个字符串 ABC123 不包含字符 D，并且每个字符都没有超过2次，因此整个字符串符合条件。
满足条件的最长子串为 ABC123，长度为 6。
示例 2
输入：
D
ABACA123D
输出：
7
分析：
排除字符为 D。
字符串 s 为 ABACA123D。
从 s 中找一个最长的子串，该子串：
不包含字符 D。
任意一个字符出现次数不超过2次。
在字符串 ABACA123D 中，有多个子串不包含 D，但需要满足字符出现次数不超过2次的条件：
BACA123 是一个符合条件的子串，每个字符最多出现2次，并且长度为 7。
因此，满足条件的最长子串为 BACA123，长度为 7。
'''
from collections import defaultdict
#读取输入
exclude = input()
s = input()

char = exclude[0]

char_map = defaultdict(list)

#定义快慢指针
slow, fast = 0,0
max_length = 0
#遍历字符串
while fast < len(s) and slow <= fast:
    current_char = s[fast]
    #如果是排除的字符
    if current_char == char:
        if slow < fast:    #指针不重合，说明有满足条件字符串
            max_length = max(max_length,fast - slow)    #更新最大长度
        #移动两个指针到该字符下一个位置
        fast += 1
        slow = fast
        char_map.clear()    #注意需要清空字典
    else:
        if current_char in char_map:
            char_map[current_char].append(fast)     #将当前字符索引加入字典
            if len(char_map[current_char]) > 2:     #个数超过2个
                max_length = max(max_length,fast - slow)    #更新最大长度
                
                slow = char_map[current_char][0] + 1   #移动慢指针到当前字符在字典中第一次出现的下一个位置
                char_map[current_char].pop(0)
                fast += 1
            else:
                max_length = max(max_length,fast - slow + 1)    #更新最大长度
                fast += 1
        else:
            char_map[current_char].append(fast)     #将当前字符和索引加入字典
            fast += 1                               #移动快指针
            max_length = max(max_length,fast - slow)
#输出最大长度
print(max_length)

